package interfaz;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;

import net.miginfocom.swing.MigLayout;
import sistemaAlmacen.Pedido;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Color;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;
import sistemaIncidencias.Incidencia;
import java.awt.GridLayout;
import javax.swing.BoxLayout;
import javax.swing.JTabbedPane;

public class InterfazIncidencias extends JPanel implements IVista{

	private JPanel pnlListaIncidencias;
	private JPanel pnlFuncionalidad;
	/**
	 * Create the panel.
	 */
	public InterfazIncidencias() {
	
		
		
		GridBagLayout gridBagLayout = new GridBagLayout();
		gridBagLayout.columnWidths = new int[]{194, 0, 0};
		gridBagLayout.rowHeights = new int[]{0, 0};
		gridBagLayout.columnWeights = new double[]{0.0, 1.0, Double.MIN_VALUE};
		gridBagLayout.rowWeights = new double[]{1.0, Double.MIN_VALUE};
		setLayout(gridBagLayout);
		
		
		
		
		
		
		
		
		pnlListaIncidencias = new JPanel();
		pnlListaIncidencias.setBorder(new LineBorder(new Color(0, 0, 0)));
		pnlListaIncidencias.setBackground(Color.WHITE);
		GridBagConstraints gbc_listaIncidencias = new GridBagConstraints();
		gbc_listaIncidencias.insets = new Insets(0, 0, 0, 5);
		gbc_listaIncidencias.fill = GridBagConstraints.BOTH;
		gbc_listaIncidencias.gridx = 0;
		gbc_listaIncidencias.gridy = 0;
		add(pnlListaIncidencias, gbc_listaIncidencias);
		pnlListaIncidencias.setLayout(new MigLayout("", "[][]", "[][][][]"));
		
		pnlFuncionalidad = new JPanel();
		pnlFuncionalidad.setBackground(Color.WHITE);
		GridBagConstraints gbc_panel = new GridBagConstraints();
		gbc_panel.fill = GridBagConstraints.BOTH;
		gbc_panel.gridx = 1;
		gbc_panel.gridy = 0;
		add(pnlFuncionalidad, gbc_panel);
	}
	
	@Override
	public void update() {
		this.invalidate();
		this.pnlFuncionalidad.invalidate();
		this.pnlListaIncidencias.invalidate();
		this.pnlFuncionalidad.repaint();
		this.pnlListaIncidencias.repaint();
		this.repaint();
		this.revalidate();
		
	}

	@Override
	public void SetVisible(boolean visible) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void registerListener(ActionListener listener) {
		
	}
	
	public void populateTable(ArrayList<Incidencia> listaIncidencias, ActionListener listener){
		
		this.remove(this.pnlListaIncidencias);
		
		JPanel nuevoPnlListaIncidencias = new JPanel();
			
		nuevoPnlListaIncidencias.setBorder(new LineBorder(new Color(0, 0, 0)));
		nuevoPnlListaIncidencias.setBackground(Color.WHITE);
		GridBagConstraints gbc_pnlLista = new GridBagConstraints();
		gbc_pnlLista.insets = new Insets(0, 0, 0, 5);
		gbc_pnlLista.fill = GridBagConstraints.BOTH;
		gbc_pnlLista.gridx = 0;
		gbc_pnlLista.gridy = 0;
		nuevoPnlListaIncidencias.setLayout(new MigLayout("", "[][][]", "[][]"));
		
		
	
		
		int contadorFilas = 0;
		Iterator<Incidencia> it = listaIncidencias.iterator();
	
		
		while(it.hasNext()){
			Incidencia incidencia = it.next();
			
			JButton btnIncidencia = new JButton();
			btnIncidencia.addActionListener(listener);
			btnIncidencia.setActionCommand("INCIDENCIA_" + String.valueOf(incidencia.getId()));
			btnIncidencia.setText(incidencia.getFechaAlta().toString()+" I: "+String.valueOf(incidencia.getId()));
			
			nuevoPnlListaIncidencias.add(btnIncidencia, "cell 1 " + String.valueOf(contadorFilas));
				
			contadorFilas++;
		}
		add(nuevoPnlListaIncidencias, gbc_pnlLista);
		this.pnlListaIncidencias = nuevoPnlListaIncidencias;
	
	}

	public void setPanelFuncionalidad(JPanel panelFuncionalidad) {
		this.remove(this.pnlFuncionalidad);
		
		panelFuncionalidad.setBackground(Color.WHITE);
		GridBagConstraints gbc_pnlFuncionalidad = new GridBagConstraints();
		gbc_pnlFuncionalidad.fill = GridBagConstraints.BOTH;
		gbc_pnlFuncionalidad.gridx = 1;
		gbc_pnlFuncionalidad.gridy = 0;
		add(panelFuncionalidad, gbc_pnlFuncionalidad);
		
		this.pnlFuncionalidad = panelFuncionalidad;
	}
}
